package com.ysxsoft.wdg.util;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;

public class ListObserverMap {
    private static HashMap<String, IListDataChangeObserver> pageHashMap;

    public static void reg(String clazzName, IListDataChangeObserver target) {
        if (pageHashMap == null) {
            pageHashMap = new HashMap<>();
        }
        if (pageHashMap.containsValue(target)) {
            pageHashMap.remove(clazzName);
        }
        pageHashMap.put(clazzName, target);
    }

    public static void notify(String clazzName) {
        if (pageHashMap == null) return;
        if (pageHashMap.containsKey(clazzName)) {
            pageHashMap.get(clazzName).ping();
        }
    }

    /**
     * 评论成功
     *
     * @param clazzName 目标名称
     */
    public static void notifyPing(String clazzName) {
        if (pageHashMap == null) return;
        if (pageHashMap.containsKey(clazzName)) {
            pageHashMap.get(clazzName).ping();
        }
    }

    /**
     * 支付成功
     *
     */
    public static void pay(String clazzName) {
        if (pageHashMap == null) return;
        if (pageHashMap.containsKey(clazzName)) {
            pageHashMap.get(clazzName).pay();
        }
    }

    /**
     * 取消订单成功
     *
     */
    public static void cancel(String clazzName) {
        if (pageHashMap == null) return;
        if (pageHashMap.containsKey(clazzName)) {
            pageHashMap.get(clazzName).cancel();
        }
    }

    public static void remove(String clazzName) {
        if (pageHashMap == null) {
            pageHashMap = new HashMap<>();
        }
        pageHashMap.remove(clazzName);
    }

    public interface IListDataChangeObserver{
        void ping();//评论成功
        void pay();//支付成功
        void cancel();//取消成功
    }
}
